Advances in communication infrastructures and protocols have turned standard computing devices into valuable communication tools. Computers communicate with each other, and with other electronic devices, over networks ranging from local area networks (LANs) to wide reaching global area networks (GANs) such as the Internet. Other electronic devices have experienced similar transformations, such as mobile phones, personal digital assistants (PDAs), and the like. Today, these wireless devices are being used for a variety of different types of communication. For example, current and anticipated mobile phone technologies have transformed these wireless devices into powerful communication tools capable of communicating voice, data, images, video, and other multimedia content. PDAs, once the portable calendaring and organizational tool, now often include network communication capabilities such as e-mail, Internet access, etc. With the integration of wireless and landline network infrastructures, a multitude of information types can be conveniently communicated between wireless and/or landline terminals.
A primary enabler for such communications is the advancement and integration of networking technologies. In order to facilitate open platforms and interoperability, data communications models have been established. A well-known Interconnect (OSI) reference model. The standard OSI reference model, also referred to as the protocol stack, includes various layers that define the functions of communications protocols. Each layer of the model represents a function that is to be performed when data is between peer applications across a network(s). Within a functional layer, any number of protocols may be used to provide a suitable service to the function of that layer. Generally, the protocols of a layer communicate with peers of an analogous protocol in that layer on a remote system or device. There are also rules defining how the information is passed between layers within the stack.
One layer of the protocol stack is the transport layer. One function of this layer is to guarantee that the receiving device receives data just as it was sent. Some transport layer protocols are considered “connectionless,” in that there is no handshaking to “establish” a virtual connection between sending and receiving devices. The User Datagram Protocol (UDP) is an example of one such connectionless transport layer protocol. However, other transport layer protocols provide a reliable, connection-oriented, byte-stream communication. These protocols will retransmit data for lost or damaged segments, and also establish logical end-to-end connections between the communicating hosts using handshaking techniques. One well-known connection-oriented transfer layer protocol is the Transmission Control Protocol (TCP). TCP is the most common transfer layer protocol used in Internet data transmissions. TCP provides reliability by retransmitting data unless it receives an acknowledgment from the receiving device that the data successfully arrived at the receiving device. TCP and other such reliable transport layer protocols therefore accommodate packet loss situations, and perform recovery from such loss.
Conceptually, packets are lost in the network primarily due to two reasons; packet loss due to network congestion (PLC) or packet loss due to bit errors (PLB). PLC occurs when a router or other network element expends its physical memory and can no longer queue packets to schedule for departure. PLB occurs due to the physical properties of the channel itself.
TCP assumes that all losses are caused by buffer overflow only, and it thus reacts by reducing its share of buffer usage in the network to half of its previous usage. More particularly, one congestion response methodology utilized by TCP is a “slow start” (SS) congestion response methodology that is used to control the amount of outstanding data being introduced into the network. This congestion control methodology uses various parameters, including a congestion window and a slow start threshold. The congestion window is a state variable that refers to the sender-side limit of the quantity of data that the sender can transmit into the network before receiving an acknowledgement. The slow start threshold is used to determine whether a slow start or congestion avoidance algorithm should be used to control data transmission. Using these parameters, segments can slowly be introduced to the network, where the congestion window grows until it reaches the slow start threshold, at which time it may grow at a different rate. When congestion is detected (e.g., when a retransmission timeout occurs and/or duplicate acknowledge packets are received), the slow start threshold is set to half of the current congestion window, and the congestion window is then reset to one Maximum Segment Size (MSS).
Such a methodology is performed to prevent further loss of packets. However, with PLB, reducing the resource usage does not prevent any further loss. This is because the loss was caused by, for example, the physical properties of the channel rather than due to a lack of resources. This unnecessarily impedes the throughput of the system. TCP and other transport layer protocols have traditionally protected only against congestion loss, rather than bit errors, because wireline networks experience very small PLB. However, the PLB problem becomes much more prevalent in the case of wireless communication, where the wireless communication link is more susceptible to bit errors.
Accordingly, there is a need in the communications industry for a manner of providing appropriate loss recovery for packet loss not caused by network congestion, such as PLB. A further need exists for a system and methodology that provides a secure manner of notifying sending nodes of PLB and other non-congestion-based packet loss, to prevent against untrustworthy intermediary nodes in the network. The present invention fulfills these and other needs, and offers other advantages over the prior art packet loss recovery approaches.